﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AutomatedDecisionMaking.UserControls
{
    class Table : DataGridView
    {
        /// <summary>
        /// Nagłówek wierszy
        /// </summary>
        public String RowHeader { get; set; }

        /// <summary>
        /// Nagłówek kolumn
        /// </summary>
        public String ColumnHeader { get; set; }

        /// <summary>
        /// Akcja wykonywana w momencie dodawanie wierszy do tabeli. Przenumerowanie
        /// wierszy.
        /// </summary>
        /// <param name="e">Rodzaj zdarzenia</param>
        protected override void OnRowsAdded(DataGridViewRowsAddedEventArgs e)
        {
            for (int i = 0; i < RowCount; ++i)
                Rows[i].HeaderCell.Value = RowHeader + (i + 1).ToString();
        }

        /// <summary>
        /// Akcja wykonywana w momencie usuwania wierszy z tabeli. Przenumerowanie
        /// wierszy.
        /// </summary>
        /// <param name="e">Rodzaj zdarzenia</param>
        protected override void OnRowsRemoved(DataGridViewRowsRemovedEventArgs e)
        {
            for(int i = 0; i<RowCount; ++i)
                Rows[i].HeaderCell.Value = RowHeader + (i + 1).ToString();
        }

        /// <summary>
        /// Akcja wykonywana w momencie dodawanie kolumny do tabeli. Przenumerowanie
        /// kolumn.
        /// </summary>
        /// <param name="e">Rodzaj zdarzenia</param>
        protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
        {
            for (int i = 0; i < ColumnCount; ++i)
                Columns[i].HeaderText = ColumnHeader + (i + 1).ToString();
        }

        /// <summary>
        /// Akcja wykonywana w momencie usuwania kolumn z tabeli. Przenumerowanie
        /// kolumn.
        /// </summary>
        /// <param name="e">Rodzaj zdarzenia</param>
        protected override void OnColumnRemoved(DataGridViewColumnEventArgs e)
        {
            for (int i = 0; i < ColumnCount; ++i)
                Columns[i].HeaderText = ColumnHeader + (i + 1).ToString();
        }

        
    }
}
